-- KEYS[1】：lockName：需要加锁的id,
-- ARGV[1]是开发者传入的过期时间（ms），
-- ARGV[2]是 uuid,
if(redis.call('exists', KEYS[1]) == 1) then --判断锁是否存在
    if(redis.call('type', KEYS[1]).ok == 'zset') then --判断锁类型是否为zset
        --锁存在
        local lockTypeNum = redis.call('zscore', KEYS[1], 'lockType'); --获取锁类型
        if(lockTypeNum ~= false and tonumber(lockTypeNum) == 1) then --锁的类型是普通锁
            local locked = redis.call('zscore', KEYS[1], ARGV[2]); --？？？false
            if(locked ~= false) then --锁是当前线程持有 重入
                redis.call('pexpire', KEYS[1], ARGV[1]);
                return 1;
            end
        end
    end
    return -1;
else
    -- 锁不存在
    redis.call('zadd', KEYS[1], 0, ARGV[2]); --（）
    redis.call('zadd', KEYS[1], 1, 'lockType');
    redis.call('pexpire', KEYS[1], ARGV[1]);
    return 0;
end

